Skip to content

feat: add MLT decoding support#2512

Merged
CommanderStorm merged 42 commits intomaplibre:mainfrom
CommanderStorm:mlt-support
Jan 27, 2026
Merged

feat: add MLT decoding support#2512
CommanderStorm merged 42 commits intomaplibre:mainfrom
CommanderStorm:mlt-support

Conversation

@CommanderStorm
Copy link
Copy Markdown
Member

No description provided.

@CommanderStorm CommanderStorm changed the title chore: add mlt support feat: add mlt support Jan 19, 2026
@github-actions github-actions bot removed the bless label Jan 19, 2026
@CommanderStorm CommanderStorm changed the title feat: add mlt support feat: add MLT decoding support Jan 19, 2026
@CommanderStorm CommanderStorm requested a review from nyurik January 19, 2026 21:57
@github-actions github-actions bot removed the bless label Jan 19, 2026
CommanderStorm added a commit that referenced this pull request Jan 20, 2026
This PR is one of those easy wins that are nessesary for #2512 but
actually not related.

Currently, the justfile is not blessing every crate when it should.
After this PR, it is.

---------

Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated 9 comments.

INSERT INTO metadata VALUES('attribution','<a href="https://www.openmaptiles.org/" target="_blank">&copy; OpenMapTiles</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>');
INSERT INTO metadata VALUES('version','3.15.0');
INSERT INTO metadata VALUES('type','baselayer');
INSERT INTO metadata VALUES('format','application/vnd.maplibre-vector-tile');
Copy link

Copilot AI Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'format' metadata value is set to 'application/vnd.maplibre-vector-tile', which is a content-type string rather than a format identifier. According to Format::parse() implementation, this won't be recognized and will fall back to tile detection. The format should be 'mlt' instead to be consistent with other format values in the metadata table (as defined by Format::metadata_format_value()). While the current approach works because MLT is detectable, it's inconsistent with the MBTiles metadata conventions used elsewhere in the codebase.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what planetiler sets.

The value here is not currently specified.

CommanderStorm and others added 3 commits January 26, 2026 16:30
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Member

@nyurik nyurik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, but please rename the verbose mapbox_vector_tile and similar back to mvt

let raw_mvt_script = include_str!("../../tests/fixtures/mbtiles/uncompressed_mvt.sql");
let (raw_mvt_mbt, raw_mvt_conn, raw_mvt_file) =
temp_named_mbtiles(&format!("{test_name}_raw_mvt"), raw_mvt_script).await;
let mapbox_vector_tiles_script = include_str!("../../tests/fixtures/mbtiles/world_cities.sql");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets keep mvt everywhere. Verbosity kills readability

@CommanderStorm CommanderStorm enabled auto-merge (squash) January 27, 2026 00:47
@github-actions github-actions bot removed the bless label Jan 27, 2026
@CommanderStorm CommanderStorm merged commit 1c1c7fe into maplibre:main Jan 27, 2026
40 checks passed
@CommanderStorm CommanderStorm mentioned this pull request Jan 27, 2026
CommanderStorm added a commit that referenced this pull request Jan 28, 2026
## 🤖 New release

* `martin-tile-utils`: 0.6.8 -> 0.6.9 (✓ API compatible changes)
* `mbtiles`: 0.15.0 -> 0.15.1 (✓ API compatible changes)
* `martin-core`: 0.2.5 -> 0.2.6 (✓ API compatible changes)
* `martin`: 1.2.0 -> 1.3.0

<details><summary><i><b>Changelog</b></i></summary><p>


## `mbtiles`

<blockquote>

##
[0.15.1](mbtiles-v0.15.0...mbtiles-v0.15.1)
- 2026-01-27

### Added

- add MLT decoding support
([#2512](#2512))
- migrate our log library to tracing
([#2494](#2494))

### Other

- unignore `diff_and_patch_bsdiff` test with unique SQLite database
names ([#2480](#2480))
- *(mbtiles)* remove the prefix-ism around how files are named for
binary diff copy and simpify their naming
([#2478](#2478))
- *(mbtiles)* add assertion messages what we are checking to the copy
tests ([#2477](#2477))
</blockquote>

## `martin-core`

<blockquote>

##
[0.2.6](martin-core-v0.2.5...martin-core-v0.2.6)
- 2026-01-27

### Added

- migrate our log library to tracing
([#2494](#2494))
- *(martin-core)* Allow glyph ranges more than 0xFFFF
([#2438](#2438))

### Fixed

- *(perf)* Remove FontSources.masks as they were consuming large amounts
of memory even when no font sources were set
([#2519](#2519))
- improve error message if no SVG sprite files are present
([#2516](#2516))

### Other

- move our imports to tracing
([#2500](#2500))
- *(deps)* shear our dependencys
([#2497](#2497))
</blockquote>

## `martin`

<blockquote>

##
[1.3.0](martin-v1.2.0...martin-v1.3.0)
- 2026-01-27

### Added

- *(srv)* Add `route_prefix` configuration for native subpath support
without the need of a reverse proxy override
([#2523](#2523))
- add MLT decoding support
([#2512](#2512))
- migrate our log library to tracing
([#2494](#2494))
- improve martin-cp progress output time estimate
([#2491](#2491))
- *(pg)* include ID column info for tables
([#2485](#2485))
- *(pg)* support PostgreSQL materialized views
([#2279](#2279))
- *(martin-core)* Allow glyph ranges more than 0xFFFF
([#2438](#2438))

### Fixed

- *(ui)* clipboard copy for http://0.0.0.0:3000 and unify
implementations ([#2487](#2487))
- the `Copy` icon displaying nicely, next to the text and with enough
padding ot all items
([#2483](#2483))
- update copy text to include icon for better visibility
([#2482](#2482))
- *(perf)* Remove FontSources.masks as they were consuming large amounts
of memory even when no font sources were set
([#2519](#2519))
- improve error message if no SVG sprite files are present
([#2516](#2516))

### Other

- move our request logging to tracing
([#2508](#2508))
- move our imports to tracing
([#2500](#2500))
- *(deps)* shear our dependencys
([#2497](#2497))
- *(ui)* adjust margin for copy icon in URL component
([#2489](#2489))
- unignore `diff_and_patch_bsdiff` test with unique SQLite database
names ([#2480](#2480))
- *(mbtiles)* remove the prefix-ism around how files are named for
binary diff copy and simpify their naming
([#2478](#2478))
- *(mbtiles)* add assertion messages what we are checking to the copy
tests ([#2477](#2477))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants